#ifndef REALVARIABLE_H_INCLUDED
#define REALVARIABLE_H_INCLUDED

#include "../realoperation.h"

class RealVariable : public RealOperation {
    private:
        char nameOfVariable;
        unsigned int varID;
    public:
        RealVariable();
        // constructor
        RealVariable(RealVariable& myRealVariable);
        // copy constructor
        RealVariable(const char& myName, const unsigned int& myID);
        // constructor with value
        ~RealVariable();
        // destructor
        char getSign();
        // returns nameOfVariable
        friend bool operator==(RealVariable& v1, RealVariable& v2);
        // overloading operator==
        void evaluateMe(LinkedList<double>& evaluationStack, const double* positionArray);
        // do my operation on the evaluationStack
        bool isNumber() {   return true;    };
        // no comment
        FormulaElement& copy() {    return *(new RealVariable(*this));  };
        // returns a copy of itself
        void createHumanReadeableToString(LinkedList<std::string>& toStringStack);
        // add this element to the human readeable toString
};

#endif // REALVARIABLE_H_INCLUDED
